function SelfVue(options) {
  var self = this
  this.methods = options.methods
  this.data = options.data
  Object.keys(this.data).forEach(function(key) {
    self.proxyKeys(key)
  })
  container = new WatchersContainer()
  addObserve(this.data)
  // el.innerHTML = this.data[name]
  // new Watcher(this, name, function(val) {
  //   el.innerHTML = val
  // })
  new Compile(this, options.el)
  return this
}

SelfVue.prototype = {
  proxyKeys: function(key) {
    var self = this
    Object.defineProperty(this, key, {
      configurable: true,
      enumerable: true,
      get: function() {
        return self.data[key]
      },
      set: function(val) {
        self.data[key] = val
      }
    })
  }
}